// 此文件的修改要重启应用
// npm i -D @craco/craco
const path = require('path')
const fs = require('fs')
// 自动导入mock下面的js文件
// 定义一个对象用来标记哪些文件已被加载
const loadFileMap = new Map()
// 读取mock下面的js文件
const mockDirPath = path.resolve('./mock')
const files = fs.readdirSync(mockDirPath)
files.forEach((file) => {
  if (!loadFileMap.has(file)) {
    const filePath = path.join(mockDirPath, file)
    loadFileMap.set(file, require(filePath))
  }
})

const config = {
  webpack: {
    alias: {
      // 定义路径别名
      '@': path.resolve('./src')
    }
  },
  babel: {
    plugins: []
  },
  // 开发服务器配置 - 详细配置请查看webpack中的devServer配置
  devServer: {
    // port: 8080,
    // open: false,
    setupMiddlewares: (middlewares, { app }) => {
      loadFileMap.forEach((fn) => fn(app))
      return middlewares
    },
    // 代理配置
    proxy: {
      '/api': {
        target: 'https://api.iynn.cn/film',
        changeOrigin: true
        // pathRewrite: { '^/api': '' }
      }
    }
  }
}

module.exports = config
